Recall that for maximum accuracy, the loop control variable should be an integer type. So the modified loop should look like this:
tenths = 0 ; while ( tenths <= limit*10 ) { double t = tenths/10.0 ; // be sure to include "point zero" distance = (G * t * t)/2 ; System.out.println( t + "\t" + distance ); tenths = tenths + 1 ; }
It is best to leave the formula as it was in the previous program,
and to handle the calculation
of t
from tenths
in an extra statement.
(Sometimes people try to skip the extra statement by modifying the formula,
but this saves little or no computer time, and costs possible confusion and error.)
Say that you want a program that writes out five rows of stars, such as the following:
******* ******* ******* ******* *******
This is done with a while
loop that
iterates five times (executes its body five times.)
Each iteration uses System.out.println("*******")
.
But it is nicer if the user can ask for
how many lines to print,
and how many stars to print in each line:
Lines? 3 Stars per line? 13 ************* ************* *************
This is hard, since the user might ask for any number of
stars per line, and no single println
can do that.